﻿#define _CRT_SECURE_NO_WARNINGS 1

/*
描述
牛牛刚刚学了素数的定义：素数值指在大于1的自然数中，除了1和它本身以外不再有其他因数的自然数
牛牛想知道输入的 n 个数分别是不是素数
输入描述：
第一行输入一个正整数 n ，表示后续要输入的数的数量。
后续 n 行每行输入一个正整数，表示需要判断的数。
输出描述：
输入的第 2 到第 n+1 行每行输出一次，如果输入的是素数则输出 true ，否则输出 false
示例1
输入：
3
2
3
6
复制
输出：
true
true
false
*/
//#include <math.h>
//#include <stdio.h>
//
//int is_prime(int n)
//{
//    for (int i = 2; i < sqrt(n); i++)
//    {
//        if (n % i == 0)
//            return 0;
//    }
//    return 1;
//}
//
//int main()
//{
//    int n = 0, m = 0;
//    scanf("%d", &n);
//    for (int i = 0; i < n; i++)
//    {
//        scanf("%d", &m);
//        if (is_prime(m))
//            printf("true\n");
//        else
//            printf("false\n");
//    }
//    return 0;
//}


/*
描述
牛牛有一个长度为 n 的字符数组，他尝试把字符数组中其中一些字符替换成另一些字符。
输入描述：
第一行输入一个正整数 n 表示字符数组的长度，四个个字符分别 a1 和 a2 ， a3 和 a4，表示把字符数组中 a1 全部替换成 a2，然后把 a3 全部替换成 a4（包括a1替换后产生的a2等于a3的情况）
第二行输入一个长度为 n 的字符数组。
输出描述：
输出替换后的字符数组
示例1
输入：
5 a b l i
fklwa
复制
输出：
fkiwb
*/
//#include <stdio.h>
//
//int main()
//{
//    char a1, a2, a3, a4;
//    int n = 0;
//    int i = 0;
//    char arr[100] = { 0 };
//    scanf("%d", &n);
//    scanf(" %c %c %c %c", &a1, &a2, &a3, &a4);
//    for (i = 0; i < n; i++)
//    {
//        scanf(" %c", &arr[i]);
//        if (a2 == a3)
//        {
//            if (arr[i] == a1)
//                arr[i] = a4;
//        }
//        else
//        {
//            if (arr[i] == a1)
//                arr[i] = a2;
//            else if (arr[i] == a3)
//                arr[i] = a4;
//        }
//    }
//    printf("%s", arr);
//    return 0;
//}

/*
描述
牛牛最近学了水仙花数，但是他并不喜欢水仙花，因此他准备算出 [l,r] 区间内的四叶玫瑰数。
四叶玫瑰数：一个数的四个位置的数字的四次方加起来等于这个四位数本身的数。
输入描述：
第一行输入两个正整数，表示闭区间的两头
输出描述：
输出区间内的四叶玫瑰数，保证至少有一个
示例1
输入：
1 2000
复制
输出：
1 1634
*/
//#include <math.h>
//#include <stdio.h>
//
//int main()
//{
//    int n = 0, m = 0;
//    int i = 0;
//    scanf("%d%d", &n, &m);
//    for (i = n; i <= m; i++)
//    {
//        int num = i, sum = 0;
//        while (num > 0)
//        {
//            sum += pow(num % 10, 4);
//            num /= 10;
//        }
//        if (sum == i)
//            printf("%d ", i);
//    }
//    return 0;
//}


/*
描述
世界上有10类人，1类是懂二进制的，另一类的不懂二进制的。牛牛是第10种人，因此他是懂二进制的。
牛牛把二进制数分成两种，一种是 1 的数量是偶数的，牛牛称之为 1 数，一种是 0 的数量是偶数的，牛牛称之为 0 数，如果一个数同时是 1 数和 0 数，那称之为 10 数。
输入描述：
第一行输入一个正整数 n 表示数的个数
第二行输入 n 个正整数，表示每个输入的数字
输出描述：
输出一行，对每个数字进行分类，即输出 0 或 1 或 10，如果既不是 0 类也不是 1 类则输出 100
示例1
输入：
2
1 10
复制
输出：
0 10
*/
//#include <stdio.h>
//
//int main()
//{
//    int n, m;
//    int i;
//    int count = 0, sum = 0;
//    scanf("%d", &n);
//    for (i = 0; i < n; i++)
//    {
//        count = 0;
//        sum = 0;
//        scanf("%d", &m);
//        while (m > 0)
//        {
//            if (m & 1)
//                count++;
//            else
//                sum++;
//            m = m >> 1;
//        }
//        if (count % 2 == 0 && sum % 2 != 0)
//            printf("1 ");
//        else if (count % 2 != 0 && sum % 2 == 0)
//            printf("0 ");
//        else if (count % 2 != 0 && sum % 2 != 0)
//            printf("100 ");
//        else
//            printf("10 ");
//    }
//    return 0;
//}

/*
描述
小乐乐上课需要走n阶台阶，因为他腿比较长，所以每次可以选择走一阶或者走两阶，那么他一共有多少种走法？

输入描述：
输入包含一个整数n (1 ≤ n ≤ 30)
输出描述：
输出一个整数，即小乐乐可以走的方法数。
示例1
输入：
2
复制
输出：
2
*/
//#include <stdio.h>
//
//int temp(int n)
//{
//    if (n > 2)
//    {
//        return temp(n - 1) + temp(n - 2);
//    }
//    else if (n == 2)
//        return 2;
//    else
//        return 1;
//
//}
//
//int main()
//{
//    int n;
//    scanf("%d", &n);
//    printf("%d", temp(n));
//    return 0;
//}

/*
描述
编写一个函数 long long factorial(int n)，用于计算 n 的阶乘。（要求使用递归实现）
输入描述：
键盘输入任意一个整数 n ，范围为 1 - 20
输出描述：
输出 n 的阶乘
示例1
输入：
5
复制
输出：
120
*/
#include<stdio.h>
long long factorial(int n)
{
    if (n > 1)
        return n * factorial(n - 1);
    else
        return 1;
}
int main()
{
    int n;
    scanf("%d", &n);
    printf("%lld", factorial(n));
    return 0;
}


/*
描述
牛牛最近学会了一些简单的数学运算，例如
∑
�
=
1
�

∑
i=1
n
​
   请你帮他模拟一下这个运算。 （即 1+2+3....+n-1+n)
输入描述：
输入仅一个正整数 n
输出描述：
请你计算
∑
�
=
1
�

∑
i=1
n
​

示例1
输入：
4
复制
输出：
10
*/
//#include <stdio.h>
//int sum(int n)
//{
//    if (n > 1)
//        return sum(n - 1) + n;
//    else
//        return 1;
//}
//int main()
//{
//    int n;
//    scanf("%d", &n);
//    printf("%d", sum(n));
//    return 0;
//}